@php $first = !empty($items) ? $items[0] : null; $pack_slug_v = $params['pack_slug'] ?? ''; $group_slug_v = $params['group_slug'] ?? ''; $puzzle_slug_v = $params['puzzle_slug'] ?? ''; $pack_name = $first ? ($first['pack'] ?? '') : ''; $group_num = $first ? ($first['group'] ?? $group_slug_v) : $group_slug_v; $puz_num = $first ? ($first['puzzle'] ?? $puzzle_slug_v) : $puzzle_slug_v; $pack_e = htmlspecialchars($pack_name, ENT_QUOTES, 'UTF-8'); $ge = htmlspecialchars($group_num, ENT_QUOTES, 'UTF-8'); $pze = htmlspecialchars($puz_num, ENT_QUOTES, 'UTF-8'); $pack_link = '/solution-codycross-' . $pack_slug_v; $group_link = '/solution-codycross-' . $pack_slug_v . '/groupe-' . $group_slug_v; $pack_url_full = 'https://codycross.fr' . $pack_link; $group_url_full = 'https://codycross.fr' . $group_link; $indice_count = count($items ?? []); $indice_word = $indice_count === 1 ? 'indice' : 'indices'; $canonical_url = 'https://codycross.fr/solution-codycross-' . $pack_slug_v . '/groupe-' . $group_slug_v . '/grille-' . $puzzle_slug_v; $page_title = 'CodyCross ' . $pack_name . ' Groupe ' . $group_num . ' Grille ' . $puz_num . ' Solution'; $page_desc = 'Solutions CodyCross ' . $pack_name . ' Groupe ' . $group_num . ' Grille ' . $puz_num . ' — tous les indices et réponses de la grille. Mises à jour quotidiennes.'; $ld = [ '@context' => 'https://schema.org', '@graph' => [ [ '@type' => 'BreadcrumbList', 'itemListElement' => [ [ '@type' => 'ListItem', 'position' => 1, 'name' => 'Accueil', 'item' => 'https://codycross.fr/' ], [ '@type' => 'ListItem', 'position' => 2, 'name' => $pack_name, 'item' => $pack_url_full ], [ '@type' => 'ListItem', 'position' => 3, 'name' => 'Groupe ' . $group_num, 'item' => $group_url_full ], [ '@type' => 'ListItem', 'position' => 4, 'name' => 'Grille ' . $puz_num, 'item' => $canonical_url ], ], ], [ '@type' => 'CollectionPage', '@id' => $canonical_url . '#collectionpage', 'url' => $canonical_url, 'name' => $page_title, 'description' => $page_desc, 'inLanguage' => 'fr-FR', 'isPartOf' => [ '@id' => 'https://codycross.fr/#website' ], ], ], ]; if (!empty($items)) { $list_items = []; $idx = 0; foreach ($items as $row) { $cs = $row['clue_slug'] ?? ''; if ($cs === '') continue; $idx++; $list_items[] = [ '@type' => 'ListItem', 'position' => $idx, 'url' => 'https://codycross.fr/' . $cs . '-codycross', 'name' => $row['clue'] ?? '', ]; } if (!empty($list_items)) { $ld['@graph'][] = [ '@type' => 'ItemList', 'name' => 'Indices de la Grille ' . $puz_num, 'numberOfItems' => count($list_items), 'itemListElement' => $list_items, ]; } } $ld_json = json_encode($ld, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); @endphp
Grille {!! $pze !!} — Groupe {!! $ge !!}

CodyCross {!! $pack_e !!} — Grille {!! $pze !!}

Logo CodyCrossVoici les {!! $indice_count !!} {!! $indice_word !!} de la grille CodyCross {!! $pack_e !!} Groupe {!! $ge !!} Grille {!! $pze !!}. Cette grille fait partie du pack {!! $pack_e !!} (Groupe {!! $ge !!}) du jeu CodyCross développé par Fanatee. Cliquez sur un indice ci-dessous pour accéder à sa réponse complète avec le nombre de lettres et la solution vérifiée par notre équipe éditoriale.

Indices de la Grille {!! $pze !!}

@if(!empty($items)) @foreach($items as $row) @php $clue_e = htmlspecialchars($row['clue']??'', ENT_QUOTES, 'UTF-8'); $clue_url = '/' . ($row['clue_slug'] ?? '') . '-codycross'; @endphp {!! $clue_e !!} @endforeach @else

Aucun indice disponible pour cette grille.

@endif